/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.siseventos.managed;

import br.siseventos.model.*;
import br.siseventos.service.EventoService;
import br.siseventos.service.LocalService;
import br.siseventos.service.UsuarioService;
//import br.siseventos.service.ParticipacaoService;
import br.siseventos.service.PublicoService;
import br.siseventos.service.TipoAtividadeService;
import br.siseventos.service.TipoEventoService;
import br.siseventos.util.RelatorioHelper;
import br.siseventos.view.util.MessageHelper;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

@ManagedBean(name = "relatoriosBean")
@ViewScoped
public class RelatoriosBean extends BaseBean{
    // Campos
    private int pageLoad;
    private int relatorioSelecionado = 0;
    private Date dataInicioPesquisa;
    private Date dataTerminoPesquisa;
    private boolean exibirPainelGeralEventoPorPeriodo = false;
    private List<TdTipoEvento> tiposEvento;
    private List<TbPublico> publicosAlvo;
    private List<TbEvento> eventos;
    private TbEvento eventoSelecionado;
    private TbPublico publicoSelecionado;
    private TbPrestadorServico prestadorServicoSelecionado;
    private TdTipoEvento tipoEventoSelecionado;
    private List<TdTipoAtividade> tiposAtividade;
    private TdTipoAtividade tipoAtividadeSelecionada;
    private TbLocal localSelecionado;
    private List<TbLocal> locais;
    private TbUsuario usuarioSelecionado;
    private List<TbUsuario> usuarios;
    private TaParticipacao participanteSelecionado;
    private List<TaParticipacao> participantes;
 
    
    
    // Serviços
    private TipoEventoService tipoEventoService;
    private PublicoService publicoService;
    private EventoService eventoService;
    private TipoAtividadeService tipoAtividadeService;
    private LocalService localService;
    private UsuarioService usuarioService;
    //private ParticipanteService participanteService;
    
    // Construtor
    public RelatoriosBean() {
    }

    // Actions e Listeneters
    public void onRelatorioChanged() {
        switch (relatorioSelecionado) {
            case 1:
                // Limpar campos dos inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 2:
                // Limpar campos dos inputs
                tipoEventoSelecionado = null;
                break;
            case 3:
                // Limpar campos dos inputs
                publicoSelecionado = null;
                break;

            case 4:
                // Limpar campos dos inputs
                eventoSelecionado = null;
                break;
            case 5:
                // Limpar campos dos inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 6:
                // Limpar campos dos inputs
                tipoAtividadeSelecionada = null;
                break;
            case 7:
                //Limpar campos de inputs
                localSelecionado = null;
                break;
            case 8:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                usuarioSelecionado = null;
                break;
            case 9:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                usuarioSelecionado = null;
                break;
            case 10:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                usuarioSelecionado = null;
                break;
            case 11:
                //Limpar campo de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                usuarioSelecionado = null;
                break;
            case 12:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 13:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 14:
                //Limpar campos de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 15:
                //Limpar campo de inputs
                participanteSelecionado = null;
                eventoSelecionado = null;
                break;
            case 16:
                //Limpar campo de inputs
                eventoSelecionado = null;
                break;
            case 17:
                //Limpar campo de inputs
                dataInicioPesquisa = null;
                dataTerminoPesquisa = null;
                break;
            case 18:
                //Limpar campo de inputs
                eventoSelecionado = null;
                break;
                

        }

    }

    // Gerar relatórios de evento por periodo
    public void gerarRelatorioEventoPorPeriodo(ActionEvent e) {
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_geral_eventos",
                    RelatorioHelper.REL_EVENTO_POR_PERIODO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado

    }

    public void gerarRelatorioEventoPorTipo(ActionEvent e) {
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_tipo_evento", tipoEventoSelecionado.getIdtTipoEvento());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_geral_eventos_por_tipo",
                    RelatorioHelper.REL_EVENTO_POR_TIPO_EVENTO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        // Limpando os campos input do painel associado
        tipoEventoSelecionado = null;
        
        // Limpar relatorio selecionado

    }

    public void gerarRelatorioEventoPorPublico(ActionEvent e) {
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_publico", publicoSelecionado.getIdtPublico());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_geral_eventos_por_publico",
                    RelatorioHelper.REL_EVENTO_POR_PUBLICO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        // Limpando os campos input do painel associado
        publicoSelecionado = null;
        
        // Limpar relatorio selecionado

    }

    public void gerarRelatorioAtividadePorEvento(ActionEvent e) {
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_evento", eventoSelecionado.getIdtEvento());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_atividades_por_evento",
                    RelatorioHelper.REL_ATIVIDADES_PARA_UM_EVENTO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        // Limpando os campos input do painel associado
        eventoSelecionado = null;
        
        // Limpar relatorio selecionado

    }
    
    public void gerarRelatorioAtividadePorPeriodo(ActionEvent e) {
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_atividades_por_periodo",
                    RelatorioHelper.REL_ATIVIDADES_POR_DATA,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado

    }
    
    public void gerarRelatorioAtividadePorTipo(ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_tipo_atividade", tipoAtividadeSelecionada.getIdtTipoAtividade());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_atividades_por_tipo",
                    RelatorioHelper.REL_ATIVIDADES_POR_TIPO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        tipoAtividadeSelecionada = null;
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioAtividadePorLocal(ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_local", localSelecionado.getIdtLocal());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_atividades_por_local",
                    RelatorioHelper.REL_ATIVIDADES_POR_LOCAL,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        tipoAtividadeSelecionada = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioAprovacaoLocalPorUsuario (ActionEvent e){
        //Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        parametros.put("idt_usuario", usuarioSelecionado);
        //Gerar Relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_aprovacao_local_por_usuario",
                    RelatorioHelper.REL_APROVACAO_LOCAL_POR_USUARIO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        //Limpando os campos input do painel associado
        usuarioSelecionado = null;
        
        //Limpar relatório selecionado
    }
    
    public void gerarRelatorioAprovacaoRecursoPorUsuario (ActionEvent e){
        //Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        parametros.put("idt_usuario", usuarioSelecionado);
        //Gerar Relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_aprovacao_recurso_por_usuario",
                    RelatorioHelper.REL_APROVACAO_RECURSO_POR_USUARIO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        //Limpando os campos input do painel associado
        usuarioSelecionado = null;
        
        //Limpar relatório selecionado
    }
    
    public void gerarRelatorioAprovacaoservicosPorUsuario (ActionEvent e){
        //Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        parametros.put("idt_usuario", usuarioSelecionado);
        //Gerar Relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_aprovacao_servico_por_usuario",
                    RelatorioHelper.REL_APROVACAO_SERVICOS_POR_USUARIO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        //Limpando os campos input do painel associado
        usuarioSelecionado = null;
        
        //Limpar relatório selecionado
    }
    
    public void gerarRelatorioHistoricoAprovacaoPorUsuario (ActionEvent e){
        //Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        parametros.put("idt_usuario", usuarioSelecionado);
        //Gerar Relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_historico_aprovacao_por_usuario",
                    RelatorioHelper.REL_HISTORICO_APROVACAO_POR_USUARIO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }
        //Limpando os campos input do painel associado
        usuarioSelecionado = null;
        
        //Limpar relatório selecionado
    }
    
    public void gerarRelatorioRecursosMaisUtilizados (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_recurso_mais_utilizado",
                    RelatorioHelper.REL_RECURSOS_MAIS_UTILIZADOS,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioServicosMaisUtilizados (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_servicos_mais_utilizados",
                    RelatorioHelper.REL_SERVICOS_MAIS_UTILIZADOS,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioParticipantes (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_participantes",
                    RelatorioHelper.REL_PARTICIPANTES,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioAvaliacaoPorParticipante (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_participante", participanteSelecionado.getIdtParticipacao());
        parametros.put("idt_evento", eventoSelecionado.getIdtEvento());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_avaliacao_por_participante",
                    RelatorioHelper.REL_AVALIACAO_POR_PARTICIPANTE,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        participanteSelecionado = null;
        eventoSelecionado = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioAvaliacoesPorEvento (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_evento", eventoSelecionado.getIdtEvento());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_avaliacoes_por_evento",
                    RelatorioHelper.REL_AVALIACOES_POR_EVENTO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        eventoSelecionado = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioTodosEventosAtividadesPorPeriodo (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("dta_inicio", dataInicioPesquisa);
        parametros.put("dta_termino", dataTerminoPesquisa);
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_todos_eventos_atividades_por_periodo",
                    RelatorioHelper.REL_TODOS_EVENTOS_ATIVIDADES_POR_PERIODO,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        dataInicioPesquisa = null;
        dataTerminoPesquisa = null;
        
        // Limpar relatorio selecionado
    }
    
    public void gerarRelatorioPromotores (ActionEvent e){
        // Criando o mapa com os parâmetros
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("idt_evento", eventoSelecionado.getIdtEvento());
        // Gerar o relatório
        try {
            RelatorioHelper.gerarRelatorio("relatorio_promotores",
                    RelatorioHelper.REL_PROMOTORES,
                    parametros, RelatorioHelper.getConexao(), FacesContext.getCurrentInstance());
        } catch (Exception ex) {
            MessageHelper.showMessageForControl("mMessages", "Não foi possível gerar o relatório.", FacesMessage.SEVERITY_ERROR);
        }

        // Limpando os campos input do painel associado
        eventoSelecionado = null;
        
        // Limpar relatorio selecionado
    }
    
    
    // Getters e Setters
    
    public int getRelatorioSelecionado() {
        return relatorioSelecionado;
    }

    public void setRelatorioSelecionado(int relatorioSelecionado) {
        this.relatorioSelecionado = relatorioSelecionado;
    }

    public Date getDataInicioPesquisa() {
        return dataInicioPesquisa;
    }

    public void setDataInicioPesquisa(Date dataInicioPesquisa) {
        this.dataInicioPesquisa = dataInicioPesquisa;
    }

    public Date getDataTerminoPesquisa() {
        return dataTerminoPesquisa;
    }

    public void setDataTerminoPesquisa(Date dataTerminoPesquisa) {
        this.dataTerminoPesquisa = dataTerminoPesquisa;
    }

    public boolean isExibirPainelGeralEventoPorPeriodo() {
        return exibirPainelGeralEventoPorPeriodo;
    }

    public void setExibirPainelGeralEventoPorPeriodo(boolean exibirPainelGeralEventoPorPeriodo) {
        this.exibirPainelGeralEventoPorPeriodo = exibirPainelGeralEventoPorPeriodo;
    }

    public TdTipoEvento getTipoEventoSelecionado() {
        return tipoEventoSelecionado;
    }

    public void setTipoEventoSelecionado(TdTipoEvento tipoEventoSelecionado) {
        this.tipoEventoSelecionado = tipoEventoSelecionado;
    }

    public List<TdTipoEvento> getTiposEvento() {
        if (tiposEvento == null) {
            try {
                tiposEvento = getTipoEventoService().consultarTodos();
            } catch (Exception e) {
            }
        }
        return tiposEvento;
    }

    public void setTiposEvento(List<TdTipoEvento> tiposEvento) {
        this.tiposEvento = tiposEvento;
    }

    public TbPublico getPublicoSelecionado() {
        return publicoSelecionado;
    }

    public void setPublicoSelecionado(TbPublico publicoSelecionado) {
        this.publicoSelecionado = publicoSelecionado;
    }

    public List<TbPublico> getPublicosAlvo() {
        if (publicosAlvo == null) {
            try {
                publicosAlvo = getPublicoService().consultarTodos();
            } catch (Exception e) {
            }
        }
        return publicosAlvo;
    }

    public void setPublicosAlvo(List<TbPublico> publicosAlvo) {
        this.publicosAlvo = publicosAlvo;
    }

    public TbEvento getEventoSelecionado() {
        return eventoSelecionado;
    }

    public void setEventoSelecionado(TbEvento eventoSelecionado) {
        this.eventoSelecionado = eventoSelecionado;
    }

    public List<TbEvento> getEventos() {
        if (eventos == null) {
            try {
                eventos = getEventoService().consultarTodos();
            } catch (Exception e) {
            }
        }
        return eventos;
    }

    public void setEventos(List<TbEvento> eventos) {
        this.eventos = eventos;
    }

    public TdTipoAtividade getTipoAtividadeSelecionada() {
        return tipoAtividadeSelecionada;
    }

    public void setTipoAtividadeSelecionada(TdTipoAtividade tipoAtividadeSelecionada) {
        this.tipoAtividadeSelecionada = tipoAtividadeSelecionada;
    }

    public List<TdTipoAtividade> getTiposAtividade() {
        if(tiposAtividade == null){
            try {
                tiposAtividade = getTipoAtividadeService().consultarTodos();
            } catch (Exception e) {
            }
        }
        return tiposAtividade;
    }

    public void setTiposAtividade(List<TdTipoAtividade> tiposAtividade) {
        this.tiposAtividade = tiposAtividade;
    }
    
    public List<TaParticipacao> getParticipantes(){
        if(participantes == null){
            try {
                //participantes = getParticipanteService().consultarTodos();
            } catch (Exception e){
            }
        }
        return participantes;
    }
    
    public void setParticipantes(List<TaParticipacao> participantes){
        this.participantes = participantes;
    }
    
    public TaParticipacao getParticipanteSelecionado(){
        return participanteSelecionado;
    }
    
    public List<TbUsuario> getUsuarios(){
        if(usuarios == null){
            try {
                usuarios = getUsuarioService().consultarTodos();
                
            } catch (Exception e){
            }
        }
        return usuarios;
    }
    
    public void setUsuarios(List<TbUsuario> usuarios) {
        this.usuarios = usuarios;
    }

    public TbUsuario getUsuarioSelecionado() {
        return usuarioSelecionado;
    }

    public void setUsuarioSelecionado(TbUsuario usuarioSelecionado) {
        this.usuarioSelecionado = usuarioSelecionado;
    }

    public List<TbLocal> getLocais() {
        if(locais == null){
            try {
                locais = getLocalService().consultarTodos();
            } catch (Exception e) {
            }
        }
        return locais;
    }

    public void setLocais(List<TbLocal> locais) {
        this.locais = locais;
    }

    public TbLocal getLocalSelecionado() {
        return localSelecionado;
    }

    public void setLocalSelecionado(TbLocal localSelecionado) {
        this.localSelecionado = localSelecionado;
    }
    
    
    // Getters e Setters Serviços

    public EventoService getEventoService() {
        if(eventoService == null){
            eventoService = new EventoService();
        }
        return eventoService;
    }

    public PublicoService getPublicoService() {
        if(publicoService == null){
            publicoService = new PublicoService();
        }
        return publicoService;
    }

    public TipoAtividadeService getTipoAtividadeService() {
        if(tipoAtividadeService == null){
            tipoAtividadeService = new TipoAtividadeService();
        }
        return tipoAtividadeService;
    }

    public TipoEventoService getTipoEventoService() {
        if(tipoEventoService == null){
            tipoEventoService = new TipoEventoService();
        }
        return tipoEventoService;
    }
    
    public LocalService getLocalService() {
        if(localService == null){
            localService = new LocalService();
        }
        return localService;
    }
    
    public UsuarioService getUsuarioService(){
        if(usuarioService == null){
            usuarioService = new UsuarioService();
        }
        return usuarioService;
    }
    
//    public ParticipanteService getParticipanteService(){
//        if(participanteService == null){
//            participanteService = new ParticipanteService();
//        }
//        return participanteService;
//    }
  
    // Util

}
